package com.t.bricks.bussiness.model.useranddepartment;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * 登录缓存对象
 * 非数据库实体
 */
public class LoginUser {

	/**
	 * 用户编号
	 */
	private String uId;
	
	/**
	 * 姓名
	 */
	private String sName;
	
	/**
	 * 工号
	 */
	private String sNo;
	
	/**
	 * 用户类型编号
	 */
	private String sType;
	
	/**
	 * 用户来源
	 */
	private String sOwner;
	
	/**
	 * 状态(-1,人员表人员被删除,1表示正常状态,2人员停用,)
	 */
	private Integer iState;

	/**
	 * 最后访问时间
	 */
	private long dLastDate;

	/**
	 * 分配的Cookie
	 */
	private String sCookie;

	/**
	 * 设备类型,1:PC,2:手机,3:平板,4.....
	 */
	private Integer iDevice=1;
	
	/**
	 * 与登录相关的附属信息
	 */
	private Map<String, String> attached;
	
	public LoginUser() {
		this.dLastDate = System.currentTimeMillis();
	}
	
	/**
	 * @param uId
	 * @param sName
	 * @param sNo
	 * @param sPass
	 * @param sSignPass
	 * @param sType
	 * @param sOwner
	 * @param iState
	 * @param dLastDate
	 * @param sCookie
	 */
	public LoginUser(String uId, String sName, String sNo, String sType,
			String sOwner, Integer iState, Date dLastDate,	String sCookie) {
		this.uId = uId;
		this.sName = sName;
		this.sNo = sNo;
		this.sType = sType;
		this.sOwner = sOwner;
		this.iState = iState;
		this.dLastDate = System.currentTimeMillis();
		this.sCookie = sCookie;
	}
	
	/**
	 * 复制
	 * @return
	 */
	public LoginUser copy() {
		LoginUser result = new LoginUser();
		result.setuId(this.getuId());
		result.setsName(this.getsName());
		result.setsNo(this.getsNo());
		result.setsType(this.getsType());
		result.setsOwner(this.getsOwner());
		result.setiState(this.getiState());
		result.setdLastDate(this.getdLastDate());
		result.setsCookie(this.getsCookie());
		
		if (null != this.attached) {
			result.attached = new HashMap<String, String>();
			result.attached.putAll(this.attached);
		}
		
		return result;
	}

	/**
	 * 获得 用户编号
	 * @return uId 用户编号
	 */
	public String getuId() {
		return uId;
	}

	/**
	 * 设置 用户编号
	 * @param uId 用户编号
	 */
	public void setuId(String uId) {
		this.uId = uId;
	}

	/**
	 * 获得 姓名
	 * @return sName 姓名
	 */
	public String getsName() {
		return sName;
	}

	/**
	 * 设置 姓名
	 * @param sName 姓名
	 */
	public void setsName(String sName) {
		this.sName = sName;
	}

	/**
	 * 获得 工号
	 * @return sNo 工号
	 */
	public String getsNo() {
		return sNo;
	}

	/**
	 * 设置 工号
	 * @param sNo 工号
	 */
	public void setsNo(String sNo) {
		this.sNo = sNo;
	}

	/**
	 * 获得 用户类型编号
	 * @return sType 用户类型编号
	 */
	public String getsType() {
		return sType;
	}

	/**
	 * 设置 用户类型编号
	 * @param sType 用户类型编号
	 */
	public void setsType(String sType) {
		this.sType = sType;
	}

	/**
	 * 获得 用户来源
	 * @return sOwner 用户来源
	 */
	public String getsOwner() {
		return sOwner;
	}

	/**
	 * 设置 用户来源
	 * @param sOwner 用户来源
	 */
	public void setsOwner(String sOwner) {
		this.sOwner = sOwner;
	}

	/**
	 * 获得 状态(-1,人员表人员被删除,1表示正常状态,2人员停用,)
	 * @return iState 状态(-1,人员表人员被删除,1表示正常状态,2人员停用,)
	 */
	public Integer getiState() {
		return iState;
	}

	/**
	 * 设置 状态(-1,人员表人员被删除,1表示正常状态,2人员停用,)
	 * @param iState 状态(-1,人员表人员被删除,1表示正常状态,2人员停用,)
	 */
	public void setiState(Integer iState) {
		this.iState = iState;
	}

	/**
	 * 获得 最后访问时间
	 * @return dLastDate 最后访问时间
	 */
	public long getdLastDate() {
		return dLastDate;
	}

	/**
	 * 设置 最后访问时间
	 * @param dLastDate 最后访问时间
	 */
	public void setdLastDate(long dLastDate) {
		this.dLastDate = dLastDate;
	}

	/**
	 * 获得 分配的Cookie
	 * @return sCookie 分配的Cookie
	 */
	public String getsCookie() {
		return sCookie;
	}

	/**
	 * 设置 分配的Cookie
	 * @param sCookie 分配的Cookie
	 */
	public void setsCookie(String sCookie) {
		this.sCookie = sCookie;
	}
	
	/**
	 * 获得 设备类型,1:PC,2:手机,3:平板,4.....
	 * @return iDevice 设备类型,1:PC,2:手机,3:平板,4.....
	 */
	public Integer getiDevice() {
		return iDevice;
	}

	/**
	 * 设置 设备类型,1:PC,2:手机,3:平板,4.....
	 * @param iDevice 设备类型,1:PC,2:手机,3:平板,4.....
	 */
	public void setiDevice(Integer iDevice) {
		this.iDevice = iDevice;
	}

	/**
	 * 获得 与登录相关的附属信息
	 * @return attached 与登录相关的附属信息
	 */
	public Map<String, String> getAttached() {
		return attached;
	}

	/**
	 * 设置 与登录相关的附属信息
	 * @param attached 与登录相关的附属信息
	 */
	public void setAttached(Map<String, String> attached) {
		this.attached = attached;
	}

}
